// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'



Vue.config.productionTip = false

/* 导入mint-ui组件 */

// import { Header , Swipe, SwipeItem,Button,Lazyload } from 'mint-ui';
// /* 注册组件 */
// Vue.component(Header.name, Header);
// /* 轮播图组件注册 */
// Vue.component(Swipe.name, Swipe);
// Vue.component(SwipeItem.name, SwipeItem);

// /* 按钮 */
// Vue.component(Button.name, Button);

//  /* 图片懒加载 */
//  Vue.use(Lazyload);
import MintUI from 'mint-ui';
Vue.use(MintUI);

/* 导入vue-resource */
import VueResource from 'vue-resource'
Vue.use(VueResource);

// 导入 MUI 的样式
import 'mint-ui/lib/style.css'
// 导入扩展图标样式
import './lib/mui/css/mui.min.css'
import './lib/mui/css/icons-extra.css'


import "./lib/css/golbal.css"

/* 过滤器 */
/* 导入时间中间件 */
import moment from "moment";
Vue.filter('dataFormat', function (dataStr,pattern="YYYY-MM-DD HH:mm:ss") {
  // 返回处理后的值
  return moment(dataStr).format(pattern)
})

/* 缩略图 */
import VuePreview from 'vue-preview'
Vue.use(VuePreview)

/* 导入vuex */
/* 每次进入就获取本地缓存数据,把购物车数据读物出来 */
var car=JSON.parse(localStorage.getItem("car")||'[]');

import Vuex from 'vuex';
Vue.use(Vuex);
var store = new  Vuex.Store({
  state:{
    /* car:[] *//* 将购物车的数据存储起来 */
    car:car
  },
  mutations:{
     addToCar(state,goodsInfo){
     //console.log(goodsInfo,7777);
     
      var  flag=false;/* 在购物车中有没有对应的商品 */
      state.car.some(item=>{
  
        if(item.id===goodsInfo.id){
          item.count+=parseInt(goodsInfo.count);
          flag=true;
          return  true;
        }
      });
      //console.log(state.car,55);

      if(flag==false){
        state.car.push(goodsInfo);
      };

      localStorage.setItem("car",JSON.stringify(state.car));
    },

    /* 修改购物车中的商品数量 */
    updateGoodsInfo(state,goodsInfo){
      console.log(goodsInfo);
      
      state.car.some(item=>{
        //console.log(item.id,66);
        if(item.id===goodsInfo.id){
          item.count=parseInt(goodsInfo.count);
          console.log(item.count,4);
          
          return  true;
        }
      });
      localStorage.setItem("car",JSON.stringify(state.car));
    },


    /* 根据id进行删除商品 */
    removeFromCar(state,id){
      state.car.some((item,i)=>{
        //console.log(item.id,66);
        if(item.id===id){
          state.car.splice(i,1);
          console.log(item.count,4);
          
          return  true;
        }
      });
      localStorage.setItem("car",JSON.stringify(state.car));
    },

    /* 同步开关的选中状态 */
    updateGoodsSelected(state,info){
      state.car.some((item,i)=>{
        //console.log(item.id,66);
        if(item.id===info.id){
          item.selected=info.selected;
          return  true;
        }
      });
      localStorage.setItem("car",JSON.stringify(state.car));
    }
  },
  getters:{
    getAllCount(state){
      var  c=0;
      state.car.forEach(item=>{
     // console.log(item,87);
        c+=item.count;
        
      })
       return  c;
    },

    /* 将数量保存至一个对象中  id为键,count为值 */
    getGoodsCount(state){
      var o={};
      state.car.forEach(item=>{
        o[item.id]=item.count;
      });
      return  o;
    },

    /* 选中状态 */
    getGoodsSelected(state){
      var o={};
      state.car.forEach(item=>{
        o[item.id]=item.selected;
      });
      return  o;
    },

    /* 计算总价钱和数量 */
    getGoodsCountAndAmount(state){
      var  o={
        count:0,
        amount:0
      };
      state.car.forEach(item=>{
        if(item.selected){
          o.count+=item.count;
          o.amount+=item.count*item.price;
        }
      });
      
      return  o;
    }
  }
});




/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>',
  store
})
